package 笔试;

import java.util.*;

public class 扑克 {

//    public static void main(String args[]) {
//        Scanner cin = new Scanner(System.in);
//        int n =  Integer.parseInt(cin.nextLine());
//        int[] card = Arrays.stream(cin.nextLine().split(" ")).mapToInt(Integer::valueOf).toArray();
//        int[] origin = new int[n];
//        Deque<Integer> d = new ArrayDeque<>();
//        for (int i = 0; i < n; i++) d.offerLast(n - i - 1);
//        for (int i = 0; i < n; i++) {
//            d.offerFirst(d.pollLast());
//            d.offerFirst(d.pollLast());
//            origin[d.pollLast()] = card[i];
//        }
//        for (int i = 0; i < n; i++) {
//            System.out.printf("%d ", origin[i]);
//        }
//    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] array = new int[n];
        for (int i = 0; i < n; i++) {
            array[i] = input.nextInt();
        }
        //每一次将倒数第二张牌放到开头再把最后一张牌放到开头,然后重复这样的操作..使用一个队列
        Queue<Integer> queue1 = new LinkedList<>();
        Queue<Integer> queue2 = new LinkedList<>();
        Queue<Integer> queue = new LinkedList<>();
        int i = n - 2;
        queue1.add(array[n - 1]);
        while (i >= 0) {
            //任意一个不为空
            if (!queue1.isEmpty()) {
                queue2.add(array[i--]);
                if (queue1.size() <= 1) {
                    queue2.add(queue1.poll());
                } else {
                    while (queue1.size() > 2) {
                        queue.add(queue1.poll());
                    }
                    int t1 = queue1.poll();//后放入的
                    int t2 = queue1.poll();//先放入的
                    queue2.add(t1);
                    queue2.add(t2);
                    while (!queue.isEmpty()) {
                        queue2.add(queue.poll());
                    }

                }
            } else {
                queue1.add(array[i--]);
                if (queue2.size() <= 1) {
                    queue1.add(queue2.poll());
                } else {
                    while (queue2.size() > 2) {
                        queue.add(queue2.poll());
                    }
                    int t1 = queue2.poll();//后放入的
                    int t2 = queue2.poll();//先放入的
                    queue1.add(t1);
                    queue1.add(t2);
                    while (!queue.isEmpty()) {
                        queue1.add(queue.poll());
                    }

                }
            }

        }

        if (!queue1.isEmpty()) {
            if (queue1.size() <= 1) {
                queue2.add(queue1.poll());
            } else {
                while (queue1.size() > 2) {
                    queue.add(queue1.poll());
                }
                int t1 = queue1.poll();//后放入的
                int t2 = queue1.poll();//先放入的
                queue2.add(t1);
                queue2.add(t2);
                while (!queue.isEmpty()) {
                    queue2.add(queue.poll());
                }
            }
        }
    }
}
